var mongodb = require("./mongodb");
var Schema = mongodb.Schema;


var usersSchema = new Schema(
   {
       name: String,
       age: Number,
       email: String,
       location: {
            country: String,
            province: String,
            city: String
       },
       like: String
   }
)


// 生成一个userModel
var UsersModel = mongodb.model("Users",usersSchema);

// 创建一个构造函数
var Usersinfo = function(){};

//在构造函数的protype属性上设置一个save方法
Usersinfo.prototype.creat = function(obj,callback){

    // 生成一个 usersinfo 的实体 Entity  obj是对象,用来给实体赋值
    var instance = new UsersModel(obj);

    // 调用的是 Entity 的save函数,参数 function 是它的回调函数,里面的 callback 是外面的 callback函数
    instance.save(function(err){
        callback(err);
    })
}

// 按名字查询，返回第一个的结果
Usersinfo.prototype.findByName = function(name,callback){
    UsersModel.findOne({name:name},function(err,docs){
        callback(err,docs);
    });
};

//查询全部
Usersinfo.prototype.findAll = function(callback){
    UsersModel.find(function(err,docs){
        callback(err,docs);
    });
};

//按名字删除
Usersinfo.prototype.deleteByName = function(name,callback){
    UsersModel.remove({name:name},function(err){
        callback(err);
    });
};


Usersinfo.prototype.updateUsers = function(name,newname,callback){
    UsersModel.updateOne({name:name},{name:newname},function(err){
        callback(err);
    });
};

module.exports=new Usersinfo();